//
// Created by MengYang on 25-8-24.
//

#include "api_uart.h"
#include "at32f421_wk_config.h"
#include <stdarg.h>

// 发送一个字节
static void uart_tx_byte(const uint8_t tx_byte)
{
    while (USART1->sts_bit.tdc == 0)
        ;  // 等待发送数据完成，Transmit data complete(tdc)
    usart_data_transmit(USART1, tx_byte);
}

// 发送一个字符串
static void uart_tx_str(const char* str)
{
    uint8_t i = 0;
    for (i = 0; str[i] != '\0'; i++)
    {
        uart_tx_byte(str[i]);
    }
}

// 轮询方式发送数据
void log_polling(const char* format, ...)
{
    char str[100];
    va_list arg;
    va_start(arg, format);
    vsprintf(str, format, arg);
    va_end(arg);
    uart_tx_str(str);
}